There has been an increasing consumer desire for self-differentiation, particularly for differentiating mass-marketed personal items. This can be clearly seen in the recent popularity of customized mobile phone ring-tones and fascias. In order to provide customized graphics on personalized products, there has therefore been a need for a quick and easy-to-use graphics manipulation suite to allow users to make product-specific designs, particularly from locations remote from the main image storage and printing facility. However, providing such a graphics manipulation suite over the Internet has not proved easy.
One problem stems from the open nature of the Internet itself. In order to allow Internet users to visit hundreds of thousands of unverified web sites, and yet still protect the user's computer from viruses and malicious hackers, a browser must not allow the web sites to access files on the user's computer. Thus, browsers are “dummy terminals,” albeit very powerful ones; it is not possible to actively “do” anything with an Internet browser—it simply navigates between online resources and presents information and images to the user. Thus, for designing a graphical image for application to a personal item, an internet user may be able to manipulate images within the browser environment, but will not be able to save the images.
The problem of manipulating images has previously been solved in two ways, each of which has disadvantages. In one solution, a user manipulates images on his or her own machine without the use of a browser. This solution has the advantage of being extremely fast once installed on the local machine, but suffers from three major failings. First, in order to allow the program to run on the client machine, the user must first download a program. This takes time, and is inconvenient, because the software cannot be seen or tested until it is fully downloaded. Next, the program must be installed on the user's machine, where it will remain permanently until removed. This clogs up the client hard drive, slows down the user's computer, and can (if the software is not very good) cause system crashes. Finally, the program may have computer viruses.
In another image manipulation solution, an image is manipulated on a server using Java Applets. The theoretical advantages of Java are that it can run on any client machine with identical results; and that the software does not need to be installed on the client machine, because the Java Applet runs within a Java Virtual Machine within the browser. The problem with Java is that the Internet simply is not fast enough to provide a pleasant user experience. Each time the user uses the interface to manipulate the image, a call is made to the server. The server software changes the image's position, and sends back the information to the client machine. Also, in practice, because the Java Applet does not know which type of machine it will be run on, it can react very differently from one machine to the next.